home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / dev / c / ASAP.readme < prev    next >
Encoding:
Text File  |  1998-05-05  |  8.9 KB  |  189 lines

  1. Short:    ASAP - Amiga Software Authoring Platform
  2. Author:   hfx@fox.nstn.ca
  3. Uploader: hfx@fox.nstn.ca
  4. Version:  1.0 beta (final beta)
  5. Type:     dev/c
  6. Requires: Storm or SAS C++. GNUC++ support is being investigated
  7.  
  8. What: Zero overhead, inlined C++ wrapper classes for the Amiga API.
  9.       A collection of 90 header files, each having one class which derive
  10.       from the corresponding Amiga system structure, adding no data members,
  11.       only inlined methods which call the corresponding global prototype
  12.       substituting the 'this' pointer for the structure pointer.
  13.  
  14. Why: I'm a C++ programmer, and I think in terms of objects. The Amiga API
  15.      is a "flat" API. It helps me, and I hope many of you, to categorize these
  16.      functions into "classes" or "categories". Many of you may be concerned about
  17.      overhead using these. See below, there is absolutely *no* overhead. There are
  18.      several benefits, including fewer bugs, such as CloseWindow(pNotAWindow); Also,
  19.      if you want to work with a Window, or RastPort, for instance, you needn't worry
  20.      about what include's you need, just:
  21.        
  22.      #include <ASAP/Window.h>
  23.      #include <ASAP/RastPort.h>
  24.  
  25. How: A tool called ClassBuilder which I wrote for this purpose.
  26.  
  27. When: Part time work started in late January.
  28.  
  29. How it works: Firstly, there is no run time overhead when your compiler allows
  30.               inline optimization. In effect, these are a lot of #define's. As far
  31.               as storage is concerned, these classes *are* the Amiga structures.
  32.               You can treat these classes 100% as if they were the Amiga structures,
  33.               because ultimately, they are.
  34.  
  35.               Consider a structure, "Structure". There are some functions
  36.               which operate upon it, for example OpenStructure(Structure *) and
  37.               CloseStructure(Structure *). To simplify this for the beginner and
  38.               those who grow tired of typing, I write the following code:
  39.  
  40.               class AStructure : public Structure
  41.               {
  42.                public:
  43.                void Open() { ::OpenStructure(this); }
  44.                void Close() { ::CloseStructure(this); }
  45.               }; 
  46.  
  47.               Now the instance is tied to its methods, and there is less typing.
  48.               Also, I have overloaded operator new and delete where desirable.
  49.               Now you can create/destroy a window as follows:
  50.  
  51.               AWindow *pThis_Window = new(&The_NewWindow) AWindow;
  52.               delete pThis_Window;
  53.             
  54.               instead of:
  55.  
  56.               struct Window *pThis_Window = OpenWindow(&The_NewWindow); 
  57.               CloseWindow(pThis_Window);
  58.  
  59. Updates: These have all been compiled, but there might be one or two
  60.          logic errors (perhaps in the more obscure classes).
  61.  
  62.          Second version of the collection with abbreviated names for
  63.          those who do not mind alias of the Amiga API functions.
  64.  
  65.          eg. pThis_Window->Zip(); // instead of pThis_Window->ZipWindow();
  66.  
  67.          Also, default parameters, where the OS defines special parameter
  68.          values or they are otherwise meaningful, must be added.
  69.  
  70. Future:  This collection is fairly comprehensive, but not complete. I'm relying
  71.          on you for feedback. Also, this is just phase I. I've got some nice code
  72.          built on top of this to allow simple, dynamic IDCMP/Boopsi event handling
  73.          (dispatching) which I hope to release some time this summer.
  74.  
  75. Important:
  76.  
  77. Please, please email me if you have any problems or suggestions/complaints.
  78.  
  79. In SAS/C++, create a directory called ASAP in your cxxinclude directory
  80. Decompress the archive into this directory.
  81.  
  82. In Storm C, create a directory as above, but put it whereever you want,
  83. only make certain the directory is in your include path.
  84.  
  85. The files should be reachable by, for example:
  86.  
  87. #include <ASAP/Window.h>
  88.  
  89. Sorry, there is no example in this archive, but I will post one or
  90. more soon.
  91.  
  92.  
  93. ============================= Archive contents =============================
  94.  
  95. Original  Packed Ratio    Date     Time    Name
  96. -------- ------- ----- --------- --------  -------------
  97.     6229     788 87.3% 08-Sep-06 12:55:12  amigaguidecontext_.h
  98.      947     284 70.0% 16-Jun-06 07:28:44  amigaguidehost.h
  99.     1366     305 77.6% 08-Sep-06 12:56:00  amigaguidemsg.h
  100.     1427     320 77.5% 08-Sep-06 14:00:16  anchorpath.h
  101.     1964     419 78.6% 08-Sep-06 14:01:20  animob.h
  102.     3359     542 83.8% 08-Sep-06 14:02:24  appicon.h
  103.     3119     510 83.6% 08-Sep-06 14:03:32  appmenuitem.h
  104.     3225     511 84.1% 08-Sep-06 14:00:32  appwindow.h
  105.     1142     285 75.0% 08-Sep-06 14:01:28  areainfo.h
  106.     2119     434 79.5% 08-Sep-06 14:02:04  argstring_.h
  107.     4184     699 83.2% 08-Sep-06 13:58:04  bitmap.h
  108.     1107     265 76.0% 08-Sep-06 16:08:12  bitscaleargs_.h
  109.     1306     304 76.7% 08-Sep-06 14:04:08  bob.h
  110.     1239     324 73.8% 08-Sep-06 16:16:56  bootnode_.h
  111.     4629     795 82.8% 08-Sep-06 14:05:28  cardhandle.h
  112.     2833     512 81.9% 08-Sep-06 14:06:16  catalog.h
  113.     1241     284 77.1% 08-Sep-06 14:07:16  clockdata.h
  114.     5228     869 83.3% 08-Sep-06 14:07:56  colormap.h
  115.     2382     455 80.8% 08-Sep-06 14:09:24  configdev_.h
  116.     1665     336 79.8% 08-Sep-06 14:12:16  contextnode.h
  117.     1808     396 78.0% 08-Sep-06 14:23:28  coplist.h
  118.     1471     326 77.8% 08-Sep-06 16:34:08  currentbinding_.h
  119.     2024     412 79.6% 08-Sep-06 15:48:28  cxmsg.h
  120.     5270     932 82.3% 08-Sep-06 15:38:20  cxobj.h
  121.     1325     307 76.8% 08-Sep-06 15:53:08  datestamp.h
  122.     1224     277 77.3% 08-Sep-06 15:55:00  datetime.h
  123.     1765     384 78.2% 08-Sep-06 15:57:32  dbufinfo.h
  124.     1227     276 77.5% 08-Sep-06 16:02:40  device.h
  125.     1441     361 74.9% 08-Sep-06 16:23:48  devicenode_.h
  126.     1765     380 78.4% 08-Sep-06 16:25:48  devproc.h
  127.     2746     492 82.0% 08-Sep-06 16:40:16  diskobject.h
  128.     2931     503 82.8% 08-Sep-06 16:43:32  doslist_.h
  129.     1741     387 77.7% 08-Sep-06 16:56:56  dospacket.h
  130.     1381     313 77.3% 08-Sep-06 16:59:56  drawinfo.h
  131.     7905    1032 86.9% 08-Sep-06 18:08:48  dtobject.h
  132.     1275     291 77.1% 08-Sep-06 18:11:08  eclockval.h
  133.     8738    1332 84.7% 08-Sep-06 18:18:36  filehandle.h
  134.     5165     827 83.9% 08-Sep-06 18:35:20  filelock.h
  135.     2066     413 80.0% 08-Sep-06 18:41:56  fontcontentsheader.h
  136.     1300     311 76.0% 08-Sep-06 18:45:20  freelist_.h
  137.     7364    1000 86.4% 08-Sep-06 19:00:40  gadget.h
  138.     1635     387 76.3% 09-Sep-06 03:18:28  hook.h
  139.     3380     574 83.0% 12-Sep-06 00:07:44  IClass.h
  140.     8641    1194 86.1% 09-Sep-06 22:01:44  iffhandle.h
  141.     1086     275 74.6% 09-Sep-06 22:03:20  image.h
  142.     2949     639 78.3% 09-Sep-06 03:19:40  inputevent_.h
  143.     2308     417 81.9% 09-Sep-06 22:22:40  interrupt.h
  144.     1548     318 79.4% 09-Sep-06 22:24:40  intuimessage.h
  145.     1084     260 76.0% 01-Sep-06 17:08:56  intuitext.h
  146.     3031     555 81.6% 09-Sep-06 03:19:00  iorequest.h
  147.     1785     400 77.5% 09-Sep-06 03:19:20  iostdreq.h
  148.     1241     299 75.9% 09-Sep-06 03:20:08  isrvstr.h
  149.     1277     296 76.8% 09-Sep-06 22:49:40  keymap.h
  150.     5775     901 84.3% 09-Sep-06 22:58:24  layer.h
  151.     3496     589 83.1% 09-Sep-06 23:00:16  layer_info.h
  152.     2494     490 80.3% 09-Sep-06 23:08:28  localcontextitem.h
  153.     1410     333 76.3% 09-Sep-06 23:12:24  memheader.h
  154.     2003     435 78.2% 09-Sep-06 23:15:48  memlist_.h
  155.     3168     590 81.3% 09-Sep-06 23:26:04  menu.h
  156.     1513     339 77.5% 09-Sep-06 23:27:12  menuitem.h
  157.     1067     262 75.4% 09-Sep-06 23:30:36  message.h
  158.     1981     432 78.1% 09-Sep-06 23:34:00  monitorspec.h
  159.     3791     682 82.0% 09-Sep-06 03:20:24  msgport.h
  160.     1255     287 77.1% 04-Sep-06 01:10:48  notifyrequest.h
  161.     2989     563 81.1% 09-Sep-06 23:44:56  nvdata_.h
  162.     1782     409 77.0% 09-Sep-06 23:49:00  nvinfo_.h
  163.     7157    1040 85.4% 09-Sep-06 03:21:20  object.h
  164.     1645     327 80.1% 09-Sep-06 01:08:48  preferences.h
  165.     2040     426 79.1% 09-Sep-06 01:10:40  process.h
  166.    16920    2263 86.6% 09-Sep-06 01:21:52  rastport.h
  167.     1904     416 78.1% 09-Sep-06 01:23:12  rdargs.h
  168.     1307     299 77.1% 09-Sep-06 01:24:44  recordlock_.h
  169.     3488     551 84.2% 09-Sep-06 01:26:16  region.h
  170.     1481     319 78.4% 04-Sep-06 03:04:16  requester.h
  171.     1384     331 76.0% 09-Sep-06 01:31:24  resident.h
  172.     2596     521 79.9% 09-Sep-06 01:33:48  rexxmsg.h
  173.     5517     906 83.5% 09-Sep-06 01:39:56  screen.h
  174.     3223     516 83.9% 09-Sep-06 01:42:00  signalsemaphore.h
  175.     1305     323 75.2% 09-Sep-06 01:57:44  simplesprite.h
  176.     1876     430 77.0% 05-Sep-06 10:46:56  task.h
  177.     1503     350 76.7% 09-Sep-06 02:02:52  textattr.h
  178.     3350     619 81.5% 09-Sep-06 02:04:28  textfont.h
  179.     1141     287 74.8% 09-Sep-06 02:07:48  tmpras.h
  180.     1452     331 77.2% 09-Sep-06 02:09:16  ucoplist_.h
  181.     1812     355 80.4% 09-Sep-06 02:12:16  unit_.h
  182.     1554     352 77.3% 09-Sep-06 02:13:48  view.h
  183.     4773     848 82.2% 09-Sep-06 02:15:44  viewport.h
  184.     2481     474 80.8% 09-Sep-06 02:34:00  visualinfo.h
  185.     1695     365 78.4% 09-Sep-06 02:38:40  vsprite.h
  186.    15004    2225 85.1% 09-Sep-06 02:48:28  window.h
  187. -------- ------- ----- --------- --------
  188.   261940   46993 82.0% 13-Apr-98 12:05:14   90 files
  189.